package com.ydt.dockingclients.response;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@NoArgsConstructor
@Data
public class YdtStationListDataResponse {
    @JsonProperty("code")
    private Integer code;
    @JsonProperty("data")
    private DataDTO data;
    @JsonProperty("message")
    private String message;
    @JsonProperty("success")
    private Boolean success;

    @NoArgsConstructor
    @Data
    public static class DataDTO {
        @JsonProperty("pageNo")
        private Integer pageNo;
        @JsonProperty("pageSize")
        private Integer pageSize;
        @JsonProperty("rainbow")
        private String rainbow;
        @JsonProperty("rows")
        private List<RowsDTO> rows;
        @JsonProperty("totalPage")
        private Integer totalPage;
        @JsonProperty("totalRows")
        private Integer totalRows;

        @NoArgsConstructor
        @Data
        public static class RowsDTO {
            @JsonProperty("address")
            private String address;
            @JsonProperty("cityCode")
            private String cityCode;
            @JsonProperty("cityName")
            private String cityName;
            @JsonProperty("contactPhone")
            private String contactPhone;
            @JsonProperty("lat")
            private String lat;
            @JsonProperty("lng")
            private String lng;
            @JsonProperty("payMode")
            private String payMode;
            @JsonProperty("priceList")
            private List<PriceListDTO> priceList;
            @JsonProperty("provinceCode")
            private String provinceCode;
            @JsonProperty("provinceName")
            private String provinceName;
            @JsonProperty("roadType")
            private String roadType;
            @JsonProperty("stationId")
            private String stationId;
            @JsonProperty("stationLabel")
            private String stationLabel;
            @JsonProperty("stationName")
            private String stationName;
            @JsonProperty("status")
            private Integer status;
            @JsonProperty("callWord")
            private String callWord;
            @JsonProperty("verifyMode")
            private Integer verifyMode;

            @NoArgsConstructor
            @Data
            public static class PriceListDTO {
                @JsonProperty("gunList")
                private List<Integer> gunList;
                @JsonProperty("oilName")
                private String oilName;
                @JsonProperty("oilNo")
                private String oilNo;
                @JsonProperty("oilNoName")
                private String oilNoName;
                @JsonProperty("oilType")
                private Integer oilType;
                @JsonProperty("price")
                private Double price;
                @JsonProperty("priceGun")
                private Double priceGun;
                @JsonProperty("priceOfficial")
                private Double priceOfficial;
            }
        }
    }
}
